home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Technotools
/
Technotools (Chestnut CD-ROM)(1993).ISO
/
batch
/
bebe300
/
bebe.doc
next >
Wrap
Text File
|
1990-12-09
|
46KB
|
1,255 lines
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
╔═══════════════════╗▒▒
▒▒▒▒▒▒▒▒║ ║▒▒▒▒▒▒▒▒▒▒▒▒
╔═════════╝ BEBE ╚═════════╗▒▒
║ ║▒▒
║ The Batch Enhancer By Elmer ║▒▒
║ Version 2.00 ║▒▒
║ ║▒▒
║ Distributed By and Compliments Of ║▒▒
║ ║▒▒
║ The Winchester BBS ║▒▒
║ (307) 856-5072 ║▒▒
╚═════════╗ ╔═════════╝
║ May 1, 1990 ║▒▒
╚═══════════════════╝
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 2
CONTENTS
1. LICENSE.................................. 3
2. THEORY................................... 4
3. OVERVIEW................................. 5
4. NOTICE................................... 8
5. COMMANDS................................. 9
A. BOX.................................... 9
B. CALC................................... 8
C. COLOR.................................. 10
D. GETKEY................................. 11
E. GETSTRNG............................... 11
F. HOLD................................... 12
G. LOCATE................................. 12
H. LOWER.................................. 12
I. PARSE.................................. 13
J. SAY.................................... 14
K. SENDKEY................................ 14
L. STATUS................................. 15
M. STRINGSZ............................... 18
N. SUBSTRNG............................... 18
O. UPPER.................................. 19
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 3
1. LICENSE
Copyright 1989,1990 Winchester Development, All Rights
Reserved.
You may use BEBE on your system to test it's
suitability for your application. After determination of
suitability you must register your copy. You are free to
copy and distribute THE TRIAL VERSION of BEBE for
noncommercial use IF:
NO FEE IS CHARGED FOR USE, COPYING OR DISTRIBUTION.
IT IS NOT MODIFIED IN ANY WAY.
Winchester Development hereby disclaims all warranties
relating to this software, whether express or implied,
including without limitation any implied warranties of
merchantability or fitness for a particular purpose.
Winchester Development will not be liable for any special,
incidental, consequential, indirect or similar damages due
to loss of data or any other reason, even if Winchester
Development or an agent of Winchester Development has been
advised of the possibility of such damages. In no event
shall Winchester Development's liability for any damages
ever exceed the price paid for the license to use
software, regardless of the form of the claim. The person
using the software bears all risk as to the quality and
performance of the software.
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 4
2. THEORY
Thank you for trying BEBE. The main purpose for BEBE
is to give your batch files power and flexibility. BEBE is
loosely patterned after BE, the Batch Enhancer that is
included with the Norton Utilities. The Norton version
will perform some functions that BEBE will not, (like
produce different tones and durations of beeps that you
can use to play music), and BEBE will perform some
functions that the Norton version will not, (batch file
calculator and status reports for instance). There are
many batch file enhancers on the market and in the public
domain. The most powerful of these are complete extended
languages. These extended batch file languages have two
basic drawbacks:
One - They are generally memory resident. Now two years
ago I wouldn't have thought much about this, but
today I have a 20 Mhz machine with 2 Mb RAM and by
the time I get the necessary drivers and network
loaded, I can barely get by with my application
software. The term memory-resident has become a four
letter word.
Two - The extended languages that I have tried have given
me various compatibility problems. Some would not
run at all on a Turbo XT with DOS 3.30.
In addition to the languages mentioned above there is a
veritable plethora of stand alone utilities that will
give most if not all of the features in BEBE. The biggest
advantage that BEBE offers is the all-in-one concept. A
bunch of little COM files can eat disk space in a hurry,
and if you distribute your batch files it can be a real
nightmare trying to make sure that you have furnished all
the supporting files the batch programs call. BEBE does it
all in a single COM file.
**********************************************************
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 5
3. OVERVIEW
The BEBE sub-commands are listed below with a brief
discussion of each commands purpose in life.
BOX - The box command allows you to draw a box
on the screen wherever you would like,
using one of four different types of
boxes.
CALC - The calc command is a command line
calculator. This allows you to do some
basic arithmetic in your batch files.
Allowing you to perform all kinds of
sophisticated looping and branching, as
well as the obvious math functions.
Examples of this technique are shown
below. Results are stored in an
environment variable.
COLOR - This command allows you to set your
screen attributes and colors. You can
clear the screen to a specified color, or
simply set a color to be use by a
following echo or BEBE BOX command.
GETKEY - This command will accept a single
keypress from the user. The key that is
typed is stored in an environment
variable. A prompt can also be displayed.
GETSTRING - This command allows you to prompt for
user string input and stores the typed
response in an environment variable.
HOLD - Hold will pause for a specified amount of
time and display a specified message.
LOCATE - Locate will position the cursor anywhere
on the screen.
* LOWER - The lower command, (and it's sibling the
upper command) convert a text string to
all one case.
* PARSE - Parse allows you to break a sentence into
pieces. It also will break a text string
at a given punctuation. If, for instance
you need to separate the fields of a
comma delimited ASCII export from a
database you can do so with the PARSE
command.
SAY - The say command will display the
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 6
specified text on the screen. The
difference between SAY and ECHO is that
the SAY command does not add a carriage
return - line feed at the end of the
command. This is useful for displaying
two or more variables on one line.
SENDKEY - Sendkey will pass the specified
keystrokes to the specified application.
Examples are given below.
STATUS - An extremely useful command, status will
report the current directory, current
disk drive, free disk space, day of the
month, day of the week, whether or not
any expanded memory is installed, and if
so how much is available, the size of a
file or group of files, current hour,
minute, second, month and year. You can
get the status of one of these or all of
them at once. All results are stored in
environment variables. In addition, you
can clear all the environment variables
that BEBE creates.
* STRINGSIZE - This command is a part of a trio of
extremely powerful string handling
commands which include the PARSE,
STRINGSIZE, and SUBSTRING commands. This
command allows you to determine the
length of a string.
* SUBSTRING - The SUBSTRING command will extract a
section of text from within a text
string.
* UPPER - Converts a text string to upper case.
(See also LOWER).
All of the commands that set environment variables give
you the option of sending the value out to a text file, or
creating a batch file that will set the environment
variable just as BEBE would. This may seem a bit
redundant, but those of you using Windows, Desqview or
running BEBE by shelling out of an application program can
finally use the environment commands. Previously, BEBE
would not set an environment in the secondary copy of
command.com these programs evoke. The first copy of the
environment would be updated but not the second copy. Now
by using the batch file feature of BEBE, you can update
the secondary copy of the environment variable. For
instance:
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 7
BEBE STATUS BAT ALL
FOR %%F IN (BEBEVER DIRE DISK DISKSPAC DOM DOW EMMFREE
EMMSTAT FILESIZE HOUR MEMFREE MINUTE MONTH SECOND YEAR) DO
%%F
(the last 3 lines should all be on one line in your batch
file)
These two lines in a batch file running in a secondary
command processor will accomplish the same thing the BEBE
STATUS ALL command would accomplish in the primary
environment. All batch files and text files created with
these features will have the same name as the command. For
example BEBE CALC FILE 1 + 3 will create a text file with
the name of CALC.TXT that contains the value 4. The
command BEBE CALC BAT 1 + 3 will create a file called
CALC.BAT the contains the line SET CALC=4.
* Commands that have an asterisk next to them are only
available in the registered versions of BEBE. In addition,
the ability to send values to a text file are only
available in the registered version. The trial version
does however provide the batch file feature for
environment commands. In all probability major
enhancements and features will only be added to the
registered version. See the README.BB file that
accompanies this program for registration info.
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 8
4. NOTICE
*********************** NOTICE ! ***********************
Because of the extensive use of environment variables it
is suggested that the following line be added to your
CONFIG.SYS file.
shell = c:\command.com /e:500/a/p
This line sets an environment space big enough for 500
characters, which should accommodate almost any system.
Without this line it is doubtful that the BEBE STATUS ALL
command will function properly.
**********************************************************
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 9
5. COMMANDS
BOX {top} {left} {bottom} {right} {boxtype}
{top} is the number of the topmost row to
start drawing the box on.
{left} is the number of the leftmost column to
start drawing the box on.
{bottom} is the bottom row of the box.
{right} is the rightmost column of the box.
{boxtype} is a number representing one of the
four available box types. The four box
types are as follows:
┌─────┐ ╔═════╗ ╒═════╕ ╓─────╖
│ 1 │ ║ 2 ║ │ 3 │ ║ 4 ║
└─────┘ ╚═════╝ ╘═════╛ ╙─────╜
EXAMPLE: BEBE BOX 4 10 14 30 2
This example will draw a double line box that is
ten rows long by twenty columns wide starting at
row four column ten. Note that BEBE starts
counting at one not zero, so the home position
would be row 1 column 1.
CALC {bat} {file} {value} {operator} {value}
{bat} is the flag that tells BEBE to create a
batch file with the line SET
CALC={result}. When executed this batch
file will set an environment variable
in a secondary command processor as
described in the OVERVIEW section of
this document.
{file} is the flag that tells BEBE to send the
result of the calculation to a text
file.
{value} is the first value to operate on.
{operator} This is the operator that determines
the type of calculation to be
performed. The valid operators and
their associated functions are as
follows:
+ Addition
- Subtraction
* Multiplication
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 10
/ Division
m Modulus
a Returns Absolute Value Of First
{value}
The result of the calculation is stored in a DOS
environment variable called %CALC%
EXAMPLE: BEBE CALC 30 / 10
This example would store the value 3 in the
%CALC% environment variable.
You can use CALC to perform incrementing in your
batch files. Consider the following example...
echo off
cls
set calc=1
:checkit
if not %calc% == 11 goto loop
goto end
:loop
echo %calc%
calc %calc% + 1
goto checkit
:end
echo DONE!
This example will display the numbers 1 - 10 and
then exit with the message DONE!. A simplified
example, but it helps to illustrate the powerful
kind of looping that can be performed with CALC.
COLOR {attribute} {foreground} on {background}
{normal} {clear}
{attribute} The attribute is one of four
foreground attributes. The following
attributes are valid:
BRIGHT
BLINKING
UNDERLINE (mono monitors only)
REVERSE
{foreground} The following foreground colors are
valid:
BLACK
BLUE
CYAN
GREEN
MAGENTA
RED
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 11
YELLOW
WHITE
ON This is an optional word
supported only to make the command more
like English.
{background} The same colors that are used in the
foreground variable are valid in the
background variable.
{normal} If you get some very ugly color
combination on the screen and want to
get it off as quickly as possible, this
option will return the current colors
to white on black.
{clear} The clear option will clear the screen
to whatever the selected color
combination is. The default is to not
clear the screen.
EXAMPLE: BEBE COLOR BRIGHT WHITE ON BLUE
This example set a bold white foreground with a
blue background.
BEBE COLOR NORMAL CLEAR
This example clears the screen to white on black.
GETKEY {bat} {file} {message}
{bat} See the OVERVIEW section.
{file} See the OVERVIEW section.
{message} Here you can supply a prompt to be
displayed to the user at input time.
EXAMPLE: BEBE GETKEY Do you choose number 1 or 2
This example will display the prompt Do you
choose number 1 or 2 to the user and store the
answer in an environment variable called
%GETKEY%.
GETSTRNG {bat} {file} {message}
{bat} See the OVERVIEW section.
{file} See the OVERVIEW section.
{message} Here you can supply a prompt to be
displayed to the user at input time.
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 12
EXAMPLE: BEBE GETSTRNG What Is Your First Name?
This example will display the prompt What Is Your
First Name? to the user and store the answer in
an environment variable called %GETSTRNG%.
HOLD {duration} {message}
{duration} This is the amount of time in seconds
that you would like to suspend the
execution of your batch file.
{message} This is an optional message that will
be displayed during the pause.
EXAMPLE: BEBE HOLD 5 I am holding for 5
seconds...
This example is pretty self explanatory. Also,
the pause can be interrupted by pressing a key.
LOCATE {row} {column}
{row} This is the number for the row where
you would like the cursor placed.
{column} This is the number for the column
where you would like the cursor placed.
EXAMPLE: BEBE LOCATE 5 25
This example would obviously place the cursor at
row 5 column 25. Note that BEBE starts counting
at one not zero, so the home position would be
row 1 column 1.
LOWER {bat} {file} {variable}
{bat} See the OVERVIEW section.
{file} See the OVERVIEW section.
{variable} This is an environment variable that
contains the string that you want to
convert to lower case text. As with all
the BEBE string handling commands, you
can substitute a string enclosed in
quotes for an environment variable. The
converted text is stored in a variable
called %LOWER%.
EXAMPLE: BEBE LOWER %GETSTRNG%
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 13
or
BEBE LOWER "This Should Be Lower Text"
This would create the environment variable
%LOWER% that contains the following string:
this should be lower text
PARSE {bat} {file} {variable}
{bat} See the OVERVIEW section.
{file} See the OVERVIEW section.
{variable} This is an environment variable that
contains the string you want to parse.
This could also be a string from the
DOS command line if you surround the
string with quotes. The parse command
creates two environment variables. The
first variable, PARSEA, contains the
value that was extracted from the
string, and the second one, PARSEB,
contains the remainder of the string.
The parse command automatically breaks
on commas, quotation marks, periods,
exclamation points, colons, backslashes
and frontslashes. This makes it
especially easy to parse a pathname.
EXAMPLE: ECHO OFF
SET RECORD=Elmer,Robinson,Riverton,Wy
:REPEAT
BEBE PARSE %RECORD%
IF %PARSEA%A==A GOTO LISTEND
ECHO %PARSEA%
SET RECORD=%PARSEB%
GOTO REPEAT
:LISTEND
This would produce the following output:
Elmer
Robinson
Riverton
Wy
You could also write this batch file the
following way:
ECHO OFF
BEBE PARSE "Elmer,Robinson,Riverton,Wy"
:REPEAT
BEBE PARSE %RECORD%
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 14
IF %PARSEA%A==A GOTO LISTEND
ECHO %PARSEA%
SET RECORD=%PARSEB%
GOTO REPEAT
:LISTEND
SAY {message}
{message} This is the string you would like
displayed. Look at the following batch
file example to get an idea of the
usefulness of this command. Again, it
is a simplified example but it gets the
idea across.
EXAMPLE: ECHO OFF
CLS
BEBE GETSTRING AGE How Old Are You?
BEBE CALC %AGE% + 1
SET STOPPER=%RESULT%
SET COUNTER=1
:LOOP
BEBE SAY %AGE%
BEBE CALC %COUNTER% + 1
SET COUNTER=%RESULT%
IF %COUNTER%==%STOPPER% GOTO END
GOTO LOOP
:END
ECHO ^@
Note that the symbol after the echo on the last
line is the DOS null symbol that the F7 function
key contains. This example will ask for the users
age, and then display the answer in a line for as
many times as the user is old. Say for instance
the user is 21 years old, the screen would look
something like this...
How Old Are You? 21
212121212121212121212121212121212121212121
SENDKEY {keys} {program}
{keys} These are the keystrokes that you would
like fed into the keyboard buffer. Type
the characters just as you would
normally. If you want to send
non-typeable keys, (enter for example),
simply designate that key by a
backslash followed by the decimal value
for that key. The enter key for
instance would be shown as a \13 since
13 is the value for that key.
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 15
{program} This is the command you would type to
load the program you want to feed
keystrokes to.
EXAMPLE: BEBE SENDKEY \13N\13 FORMAT A: /S
This example will load the format command to
format a new floppy disk in drive A:, and place a
system on that disk. It will then feed an Enter
to the format command in response to the Strike
any key prompt to immediately begin formatting.
When the format command is finished it will
receive an N Enter in response to the format
another? prompt and immediately stop.
STATUS {bat} {file} {all} {bebever} {clear} {all}
{files} {dire} {disk} {diskspac} {dom} {dow}
{emmfree} {emmstat} {filesize} {hour} {memfree}
{minute} {month} {second} {year}
{bat} See the OVERVIEW section.
{file} See the OVERVIEW section.
{all} This command will report all of the
information that the status command is
capable of. This command will not
accept any parameters, so each command
will use its built in defaults. Please
note that you will not be able to use
this command unless the line mentioned
in the OVERVIEW section of this
document has been added to your
config.sys file.
{bebever} This will report the version of BEBE
you are using in the environment
variable %BEBEVER%.
{clear} As you may have noticed, BEBE makes
extensive use of DOS environment
variables. Because DOS allocates a
relatively small amount of space for
the environment by default, you should
exercise some good housekeeping
practices in your batch files. As a
rule of thumb, the last thing your
batch files should do before exiting is
clean out the environment variables
that have been set and are no longer
needed. This command provides you with
an easy way to do this. Issuing the
command BEBE STATUS CLEAR will erase
all of the environment variables that
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 16
BEBE sets. This includes all variables
set by the status report, the CALC,
GETKEY, GETSTRNG, LOWER, PARSEA, PARSEB
STRINGSZ, SUBSTRNG and UPPER variables
set by their respective commands.
{all} This command accompanies the clear
command. It tells BEBE to clear the
environment variables, and to erase all
of the files that it has created. The
syntax is BEBE STATUS CLEAR ALL.
{files} This also accompanies the clear
command. The command BEBE STATUS CLEAR
FILES will erase all of the files BEBE
has created but leave the environment
variables in place.
{dire} This asks the status command to report
the current directory. The result is
stored in the environment variable
%DIRE%.
{disk} This reports the currently logged disk
drive. The disk is reported as both the
drive letter and the colon ":". So if
you are currently on drive C: this
command would set the environment
variable %DISK% to the value C:.
{diskspac} This stores the amount of free disk
space in kilobytes in the environment
variable %DISKSPAC%. You can optionally
supply a drive letter to check for free
disk space. For instance the command:
BEBE STATUS DISKSPAC A:
would report the amount of free disk
space that is available on drive A:
regardless of your current location.
{dom} This stores the day of the month in the
environment variable %DOM%.
{dow} This stores the day of the week in the
environment variable %DOW%. This is not
a numeric representation of the day of
the week, but the actual day. So if
today is Tuesday this command will set
%DOW% = TUESDAY.
{emmfree} This command will report the amount of
available Expanded memory. This memory
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 17
must meet the LIM 4.0 specification.
Note that this is not the amount of
Expanded memory that is installed, but
rather the amount that is free. The
result is reported in kilobytes and
stored in the environment variable
%EMMFREE%.
{emmstat} This checks to see if there is any
Expanded memory installed and sets the
variable %EMMSTAT% equal to T if
Expanded memory is installed and F if
no expanded memory exists. Again, the
memory must meet the LIM 4.0
specifications.
{filesize} This command will report the size of a
single file or a group of files. If no
filespec is given the default is to
report the size of all files in the
current directory. The value is stored
in the variable %FILESIZE%. For
example:
BEBE STATUS FILESIZE C:\DOS\*.*
will report the total size of your DOS
subdirectory in kilobytes. Try these
batch files....
ECHO OFF
CLS
SET CALC=0
FOR %%F IN (*.*) DO CALL SIZE.BAT %%F
ECHO THE TOTAL IS %CALC%
(this batch file should be named
SIZE.BAT)
ECHO OFF
ECHO %1
BEBE STATUS FILESIZE %1
BEBE CALC %FILESIZE% + %CALC%
This example will display the name of
every file in the current subdirectory
and display the total size of the files
at the end of the list. Note that the
call command in the first batch file
means that this will only work with DOS
version 3.30 or greater.
{hour} This stores the current hour in the
variable %HOUR%. This command uses a 24
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 18
hour clock so 1PM is stored as the
value 13.
{memfree} This command will report the amount of
available Conventional memory. Note
that this is not the amount of
Conventional memory that is installed,
but rather the amount that is free. The
result is reported in kilobytes and
stored in the environment variable
%MEMFREE%.
{minute} This stores the current minute in the
variable %MINUTE%.
{month} This stores the number of the month in
the variable %MONTH%.
{second} This stores the current second in the
variable %SECOND%.
{year} This stores the current year in the
variable %YEAR%. The value is stored in
its entirety, so 1989 is stored as 1989
not simply 89.
STRINGSZ {bat} {file} {variable}
{bat} See the OVERVIEW section.
{file} See the OVERVIEW section.
{variable} This is an environment variable that
contains the string you want to
measure. In place of an environment
variable you can also enclose the
actual string in quotes. The length of
the string is reported in the
environment variable %STRINGSZ%.
EXAMPLE: ECHO OFF
SET TEMP1=TESTING
BEBE STRINGSZ %TEMP1%
ECHO %TEMP1% is %STRINGSZ% characters
This would produce the following display:
TESTING is 7 characters
SUBSTRNG {bat} {file} {variable1} {variable2}
{variable3}
{bat} See the OVERVIEW section.
BEBE - The Batch Enhancer By Elmer Version 3.00
Winchester Development
C/O The Winchester BBS
(307) 856-5072
December 9, 1990 Page # 19
{file} See the OVERVIEW section.
{variable1} This is an environment variable that
contains the string you want to work
on. In place of an environment variable
you can also enclose the actual string
in quotes.
{variable2} This is a number that represents the
position at which you want to start
extracting text, counting from the
left.
{variable3} This is a number that represents the
number of characters to extract. The
result is stored in the environment
variable %SUBSTRNG%.
EXAMPLE: ECHO OFF
SET TEMP1=ABCDEFG
BEBE STRINGSZ %TEMP1%
BEBE CALC %STRINGSZ% - 2
BEBE SUBSTRNG %TEMP1% 1 %CALC%
ECHO %SUBSTRNG%
This would produce the following display:
ABCDE
UPPER {bat} {file} {variable}
{bat} See the OVERVIEW section.
{file} See the OVERVIEW section.
{variable} This is an environment variable that
contains the string that you want to
convert to upper case text. As with all
the BEBE string handling commands, you
can substitute a string enclosed in
quotes for an environment variable. The
converted text is stored in a variable
called %UPPER%.
EXAMPLE: BEBE UPPER %GETSTRNG%
or
BEBE UPPER "This Should Be Upper Text"
This would create the environment variable
%UPPER% that contains the following string:
THIS SHOULD BE UPPER TEXT